package com.chinatechstar.admin.mapper;

import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

import com.chinatechstar.admin.entity.SysRole;

/**
 * 角色信息的数据持久接口层
 *
 */
public interface SysRoleMapper {

    /**
     * 查询角色分页或导出数据
     *
     * @param paramMap 参数Map
     * @return
     */
    List<LinkedHashMap<String, Object>> querySysRole(Map<String, Object> paramMap);

    /**
     * 查询角色名称的下拉框数据列表
     *
     * @param tenantCode 租户编码
     * @return
     */
    List<LinkedHashMap<String, Object>> queryRoleName(String tenantCode);

    /**
     * 查询角色编码的下拉框数据列表
     *
     * @return
     */
    List<LinkedHashMap<String, Object>> queryRoleCode();

    /**
     * 查询角色编码数据列表
     *
     * @return
     */
    List<String> queryRoleCodeList();

    /**
     * 查询角色的多选框数据列表
     *
     * @return
     */
    List<LinkedHashMap<String, Object>> queryRoleNameCheckbox();

    /**
     * 查询是否已存在此角色编码
     *
     * @param roleCode 角色编码
     * @return
     */
    Integer getSysRoleByRoleCode(String roleCode);

    /**
     * 查询当前用户的过滤数据字段
     *
     * @param menuCode 菜单编码
     * @param username 用户名
     * @return
     */
    String queryRoleData(String menuCode, String username);

    /**
     * 根据主键ID 查询数据
     *
     * @param id ID
     * @return SysRole
     */
    SysRole findSysRoleById(Long id);

    /**
     * 新增角色
     *
     * @param sysRole 角色对象
     * @return
     */
    int insertSysRole(SysRole sysRole);

    /**
     * 编辑角色
     *
     * @param sysRole 角色对象
     * @return
     */
    int updateSysRole(SysRole sysRole);

    /**
     * 删除角色
     *
     * @param id 角色ID
     * @return
     */
    int deleteSysRole(Long[] id);

}
